// const promise = new Promise((resolve, reject) => {
//   resolve("resolve");
//   // reject("rejected status");
// });

// 1. 当executor抛出异常时，也是会调用错误(拒绝)捕获的回调函数的
// promise.then(undefined, (err) => {
//   console.log("err:", err);
//   console.log("---------");
// });

// 2. 通过catch方法来传入错误(拒绝)捕获的回调函数
// promise.catch((err) => {
//   console.log("err:", err);
// });
// promise
//   .then((res) => {
//     // return new Promise((resolve, reject) => {
//     //   reject("then rejected status");
//     // });
//     throw new Error("error message");
//   })
//   .catch((err) => {
//     console.log(err);
//   });

// 3. 拒绝捕获的问题
// promise
//   .then(
//     (res) => {
//       console.log(res);
//       return "aaa";
//     },
//     (err) => {}
//   )
//   .then((res) => {
//     console.log(res);
//   })
//   .catch((err) => {
//     console.log(err);
//   });
// promise.catch((err) => {});

// 4. catch方法返回值
const promise = new Promise((resolve, reject) => {
  // resolve("11111");
  reject("aaaa");
});

promise
  .then((res) => {
    console.log("res:", res);
  })
  .catch((err) => {
    console.log("err:", err);
    return "catch return value";
  })
  .then((res) => {
    console.log("res result:", res);
  })
  .catch((err) => {
    console.log("err result:", err);
  });
